╬πδαΓδσφΦσ

╨α±≥≡εΓ√σ Φτεß≡αµσφΦ 
╟απ≡≤τΩα Φ ≡Φ±εΓαφΦσ
╩δα±± Image
╬µΦΣαφΦσ ταπ≡≤τΩΦ
┬ΦΣσε
└∩δσ≥ CDRotation

    ╬µΦΣαφΦσ ταπ≡≤τΩΦ Φτεß≡αµσφΦΘ

    ╩αΩ ∞√ ≤µσ πεΓε≡ΦδΦ Γ φα°Φ⌡ ∩≡σΣ√Σ≤∙Φ⌡ ±≥α≥ⁿ ⌡, ταπ≡≤τΩα Φτεß≡αµσφΦΘ Φτ ±σ≥Φ Internet - ΣδΦ≥σδⁿφ√Θ ∩≡ε÷σ±±, Ωε≥ε≡√Θ Γ ±≡σΣφσ∞ ΦΣσ≥ ±ε ±Ωε≡ε±≥ⁿ■ 1 ╩ßαΘ≥ Γ ±σΩ≤φΣ≤. ╧ε²≥ε∞≤ Φτεß≡αµσφΦ  ταπ≡≤µα■≥±  φαΓΦπα≥ε≡ε∞ Γ ε≥ΣσδⁿφεΘ ταΣα≈σ. ╧≡Φ ²≥ε∞ ∞σ≥εΣ getImage ≥εδⁿΩε ±ετΣασ≥ εß·σΩ≥ Ωδα±±α Image, α ∞σ≥εΣ drawImage ΦφΦ÷ΦΦ≡≤σ≥ ταπ≡≤τΩ≤ Φτεß≡αµσφΦ  Φ ≡Φ±≤σ≥ σπε. ╧≡Φ≈σ∞ σ±δΦ ⌠αΘδ Φτεß≡αµσφΦ  Φ∞σσ≥ ßεδⁿ°≤■ ΣδΦφ≤, εφ ß≤Σσ≥ ∩ε Γδ ≥ⁿ±  Γ εΩφσ α∩δσ≥α ∩ε±≥σ∩σφφε ∩ε ∞σ≡σ ταπ≡≤τΩΦ.

    ╬ΣφαΩε Γ φσΩε≥ε≡√⌡ ±δ≤≈α ⌡ ß√δε ß√ ≤Σεßφε Γφα≈αδσ ταπ≡≤τΦ≥ⁿ Φτεß≡αµσφΦσ ∩εδφε±≥ⁿ■, α δΦ°ⁿ τα≥σ∞ Γ√∩εδφ ≥ⁿ ≡Φ±εΓαφΦσ, ≈≥εß√ Φτεß≡αµσφΦσ ∩ε ΓΦδε±ⁿ φα ²Ω≡αφσ ±≡ατ≤. ╩≡ε∞σ ≥επε, α∩δσ≥ ∞εµσ≥ ≡Φ±εΓα≥ⁿ ±≡ατ≤ φσ±ΩεδⁿΩε Φτεß≡αµσφΦΘ Γ ≡ατφ√⌡ ∞σ±≥α⌡ ±Γεσπε εΩφα ΦδΦ ∩εΩατ√Γα≥ⁿ Φ⌡ ∩ε ε≈σ≡σΣΦ Γ εΣφε∞ Φ ≥ε∞ µσ ∞σ±≥σ Σδ  Σε±≥ΦµσφΦ  ²⌠⌠σΩ≥α αφΦ∞α÷ΦΦ.

    ┼±≥ⁿ δΦ ±∩ε±εß ε∩≡σΣσδΦ≥ⁿ, ΩεπΣα Φτεß≡αµσφΦσ ß≤Σσ≥ ταπ≡≤µσφε ∩εδφε±≥ⁿ■?

    ┼±≥ⁿ, Φ ∩≡Φ≈σ∞ ÷σδ√⌡ ΣΓα. ╬ΣΦφ Φτ φΦ⌡ ±Γ ταφ ± Φ±∩εδⁿτεΓαφΦσ∞ Ωδα±±α MediaTracker, ±∩σ÷Φαδⁿφε ∩≡σΣφατφα≈σφφεπε Σδ  ²≥εΘ ÷σδΦ Φ Σε±≥α≥ε≈φε ≤Σεßφεπε Γ Φ±∩εδⁿτεΓαφΦΦ, Σ≡≤πεΘ ε±φεΓαφ φα ∩σ≡σε∩≡σΣσδσφΦΦ εΣφεπε Φτ ∞σ≥εΣεΓ Φφ≥σ≡⌠σΘ±α ImageObserver.

    ╧≡Φ∞σφσφΦσ Ωδα±±α MediaTracker

    ─δ  ≥επε ≈≥εß√ Γ√∩εδφΦ≥ⁿ εµΦΣαφΦσ ταπ≡≤τΩΦ φσ±ΩεδⁿΩΦ⌡ Φτεß≡αµσφΦΘ, ∩≡ε∙σ Γε±∩εδⁿτεΓα≥ⁿ±  Ωδα±±ε∞ MediaTracker, α φσ Φφ≥σ≡⌠σΘ±ε∞ ImageObserver.

    ╩αΩ ²≥ε ±Σσδα≥ⁿ?

    ╬ß√≈φε ∞σ≥εΣ init α∩δσ≥α ±ετΣασ≥ εß·σΩ≥ Ωδα±±α MediaTracker ± ∩ε∞ε∙ⁿ■ Ωεφ±≥≡≤Ω≥ε≡α Φ ΣεßαΓδ σ≥ Γ φσπε Γ±σ Φτεß≡αµσφΦ , ταπ≡≤τΩΦ Ωε≥ε≡√⌡ φσεß⌡εΣΦ∞ε ΣεµΣα≥ⁿ± .

    ╤ετΣαφΦσ εß·σΩ≥α Ωδα±±α MediaTracker

    ╬ß·σΩ≥ Ωδα±±α MediaTracker ±ετΣασ≥±  ±δσΣ≤■∙Φ∞ εß≡ατε∞:

    MediaTracker mt;
    mt = new MediaTracker(this);

    ╩εφ±≥≡≤Ω≥ε≡≤ Ωδα±±α MediaTracker ∩σ≡σΣασ≥±  ±±√δΩα φα Ωε∞∩εφσφ≥, Σδ  Ωε≥ε≡επε φσεß⌡εΣΦ∞ε ε≥±δσµΦΓα≥ⁿ ταπ≡≤τΩ≤ Φτεß≡αµσφΦΘ. ┬ Σαφφε∞ ±δ≤≈ασ ²≥ε φα° α∩δσ≥, ∩ε²≥ε∞≤ ∞√ ∩σ≡σΣασ∞ Ωεφ±≥≡≤Ω≥ε≡≤ τφα≈σφΦσ this.

    ─εßαΓδσφΦσ Φτεß≡αµσφΦΘ Γ εß·σΩ≥ Ωδα±±α MediaTracker

    ─αδσσ ∞σ≥εΣ init Σεδµσφ ±ετΣα≥ⁿ Γ±σ φσεß⌡εΣΦ∞√σ εß·σΩ≥√ Ωδα±±α Image Φ ΣεßαΓΦ≥ⁿ Φ⌡ Γ εß·σΩ≥ MediaTracker ∞σ≥εΣε∞ addImage. ═Φµσ ∞√ ∩εΩαταδΦ ⌠≡απ∞σφ≥ ΩεΣα, Γ Ωε≥ε≡ε∞ Γ√∩εδφ σ≥±  ΣεßαΓδσφΦσ ≥≡σ⌡ Φτεß≡αµσφΦΘ:

    Image img1;
    Image img2;
    Image img3;
    img1 = getImage(getCodeBase(), "pic1.gif");
    img2 = getImage(getCodeBase(), "pic2.gif");
    img3 = getImage(getCodeBase(), "pic3.gif");
    mt.addImage(img1 , 0);
    mt.addImage(img2 , 0);
    mt.addImage(img3 , 0);

    ┬ Ωα≈σ±≥Γσ ∩σ≡Γεπε ∩α≡α∞σ≥≡α ∞σ≥εΣ≤ addImage ∩σ≡σΣασ≥±  ±±√δΩα φα Φτεß≡αµσφΦσ, ταπ≡≤τΩ≤ Ωε≥ε≡επε φσεß⌡εΣΦ∞ε ε≥±δσµΦΓα≥ⁿ, α Γ Ωα≈σ±≥Γσ Γ≥ε≡επε - ΦΣσφ≥Φ⌠ΦΩα≥ε≡, Ωε≥ε≡√Θ ∞εµφε ß≤Σσ≥ Φ±∩εδⁿτεΓα≥ⁿ Γ ∩≡ε÷σ±±σ ε≥±δσµΦΓαφΦ . ┼±δΦ Γ±σ, ≈≥ε Γα∞ φ≤µφε, ²≥ε ΣεµΣα≥ⁿ±  εΩεφ≈αφΦ  ταπ≡≤τΩΦ Φτεß≡αµσφΦΘ, ≥ε Σδ  Γ≥ε≡επε ∩α≡α∞σ≥≡α Γ√ ∞εµσ≥σ ≤Ωατα≥ⁿ φ≤δσΓεσ τφα≈σφΦσ.

    ╬µΦΣαφΦσ ταπ≡≤τΩΦ ΣεßαΓδσφφ√⌡ Φτεß≡αµσφΦΘ

    ─δ  ≥επε ≈≥εß√ ≤ßσΣΦ≥ⁿ± , ≈≥ε Γ±σ Φτεß≡αµσφΦ  ταπ≡≤µσφ√, Γ√ ∞εµσ≥σ Γε±∩εδⁿτεΓα≥ⁿ±  ∞σ≥εΣε∞ waitForAll. ▌≥ε≥ ∞σ≥εΣ ΦφΦ÷ΦΦ≡≤σ≥ ταπ≡≤τΩ≤ Φτεß≡αµσφΦΘ, α ≥αΩµσ ταΣσ≡µΦ≥ Γ√∩εδφσφΦσ Γ√τΓαΓ°σπε ∩ε≥εΩα Σε ∞ε∞σφ≥α ∩εδφεΘ ταπ≡≤τΩΦ Γ±σ⌡ Φτεß≡αµσφΦΘ, ΣεßαΓδσφφ√⌡ Γ εß·σΩ≥ Ωδα±±α MediaTracker:

    try
    {
      mt.waitForAll();
    }
    catch (InterruptedException ex)
    {
    }

    ╬ß≡α≥Φ≥σ ΓφΦ∞αφΦσ, ≈≥ε ∞σ≥εΣ waitForAll ∞εµσ≥ ±ετΣαΓα≥ⁿ Φ±Ωδ■≈σφΦσ InterruptedException. ▌≥ε Φ±Ωδ■≈σφΦσ ΓετφΦΩασ≥, σ±δΦ ∩ε ΩαΩεΘ-δΦßε ∩≡Φ≈Φφσ ∩≡ε÷σ±± εµΦΣαφΦ  ∩≡σ≡√Γασ≥± .

    ╫α∙σ Γ±σπε ≡Φ±εΓαφΦσ Γ√∩εδφ σ≥±  Γ ε≥Σσδⁿφε∞ ∩ε≥εΩσ, ∩ε²≥ε∞≤ ∞σ≥εΣ waitForAll Σεδµσφ Γ√τ√Γα≥ⁿ±  Γ φα≈αδσ ±εε≥Γσ≥±≥Γ≤■∙σπε ∞σ≥εΣα run. ═Φµσ ∞√ ∩≡ΦΓσδΦ Φ±⌡εΣφ√σ ≥σΩ±≥√ ∩≡ΦδεµσφΦ  ImageDrawWait, Γ Ωε≥ε≡ε∞ ≥αΩεσ εµΦΣαφΦσ Γ√∩εδφ σ≥±  Γ ∞σ≥εΣσ paint, ≈≥ε ∩≡ΦΓεΣΦ≥, εΣφαΩε, Ω ßδεΩΦ≡εΓΩσ ≡αßε≥√ α∩δσ≥α Σε ∞ε∞σφ≥α ταπ≡≤τΩΦ Γ±σ⌡ Φτεß≡αµσφΦΘ. ┬ Σαφφε∞ ±δ≤≈ασ ²≥ε φσ Ω≡Φ≥Φ≈φε, ≥αΩ ΩαΩ Ω≡ε∞σ ≡Φ±εΓαφΦ  Φτεß≡αµσφΦΘ φα° α∩δσ≥ φΦ≈σπε φσ Σσδασ≥, εΣφαΩε ßεδσσ ∩≡σΣ∩ε≈≥Φ≥σδⁿφ√∞  Γδ σ≥±  Γ√∩εδφσφΦσ ΣδΦ≥σδⁿφ√⌡ ∩≡ε÷σ±±εΓ Γ ε≥Σσδⁿφε∞ ∩ε≥εΩσ.

    ─≡≤πΦσ ∞σ≥εΣ√ Ωδα±±α MediaTracker

    ╩αΩΦσ Σ≡≤πΦσ ∩εδστφ√σ ∞σ≥εΣ√, Ω≡ε∞σ ∞σ≥εΣεΓ addImage Φ waitForAll σ±≥ⁿ Γ Ωδα±±σ MediaTracker?

    public boolean waitForAll(long ms);

    ╠σ≥εΣ waitForAll ± ∩α≡α∞σ≥≡ε∞ ms ∩ετΓεδ σ≥ Γ√∩εδφ ≥ⁿ εµΦΣαφΦσ Γ ≥σ≈σφΦσ ταΣαφφεπε Γ≡σ∞σφΦ. ┬≡σ∞  εµΦΣαφΦ  ταΣασ≥±  Γ ∞ΦδδΦ±σΩ≤φΣα⌡. ╧≡Φ ²≥ε∞ σ±δΦ τα ≤Ωαταφφεσ Γ≡σ∞  Γ±σ Φτεß≡αµσφΦ  ß√δΦ ≤±∩σ°φε ταπ≡≤µσφ√, ∞σ≥εΣ waitForAll ΓετΓ≡α∙ασ≥ τφα≈σφΦσ true, σ±δΦ φσ≥ - false.

    ┬α≡Φαφ≥ ∞σ≥εΣα checkAll ± ∩α≡α∞σ≥≡ε∞ load ∩ετΓεδ σ≥ ∩≡εΓσ≡Φ≥ⁿ, ταΓσ≡°Φδα±ⁿ δΦ ταπ≡≤τΩα ε≥±δσµΦΓασ∞√⌡ Φτεß≡αµσφΦΘ:

    public boolean checkAll(boolean load);

    ┼±δΦ τφα≈σφΦσ ∩α≡α∞σ≥≡α load ≡αΓφε true, ∞σ≥εΣ ΦφΦ÷ΦΦ≡≤σ≥ ταπ≡≤τΩ≤ Φτεß≡αµσφΦΘ.

    ┼±δΦ ∩≡Φ ΣεßαΓδσφΦΦ Φτεß≡αµσφΦΘ ∞σ≥εΣε∞ addImage Γ√ Φ±∩εδⁿτεΓαδΦ Γ≥ε≡εΘ ∩α≡α∞σ≥≡ ²≥επε ∞σ≥εΣα Σδ  ∩≡Φ±ΓαΦΓαφΦ  ≡ατφ√∞ π≡≤∩∩α∞ Φτεß≡αµσφΦΘ ≡ατδΦ≈φ√σ ΦΣσφ≥Φ⌠ΦΩα≥ε≡√, ≥ε ± ∩ε∞ε∙ⁿ■ ∞σ≥εΣα checkID ∞εµφε ΣεµΣα≥ⁿ±  ταΓσ≡°σφΦ  ταπ≡≤τΩΦ ε≥ΣσδⁿφεΘ π≡≤∩∩√ Φτεß≡αµσφΦΘ:

    public boolean checkID(int id);

    ┼±≥ⁿ ≥αΩµσ Γα≡Φαφ≥ ²≥επε ∞σ≥εΣα, ∩ετΓεδ ■∙ΦΘ ∩≡εΓσ≡Φ≥ⁿ ταπ≡≤τΩ≤ π≡≤∩∩√ Φτεß≡αµσφΦΘ ± ταΣαφφ√∞ ΦΣσφ≥Φ⌠ΦΩα≥ε≡ε∞:

    public boolean checkID(int id, boolean load);

    ╠σ≥εΣ waitForID ± ∩α≡α∞σ≥≡α∞Φ id Φ ms ∩ετΓεδ σ≥ Γ√∩εδφ ≥ⁿ εµΦΣαφΦσ ταπ≡≤τΩΦ π≡≤∩∩√ Φτεß≡αµσφΦΘ ± ταΣαφφ√∞ ΦΣσφ≥Φ⌠ΦΩα≥ε≡ε∞ Γ ≥σ≈σφΦΦ ≤Ωαταφφεπε ∩σ≡ΦεΣα Γ≡σ∞σφΦ:

    public boolean waitForID(int id, long ms);

    ╩δα±± MediaTracker ∩≡σΣε±≥αΓδ σ≥ ≥αΩµσ Γετ∞εµφε±≥ⁿ ∩≡ε±δσµΦΓα≥ⁿ ±α∞ ∩≡ε÷σ±± ταπ≡≤τΩΦ Γ±σ⌡ ΣεßαΓδσφφ√⌡ Γ φσπε Φτεß≡αµσφΦΘ ΦδΦ ε≥Σσδⁿφ√⌡ π≡≤∩∩ Φτεß≡αµσφΦΘ ± ∩ε∞ε∙ⁿ■ ∞σ≥εΣεΓ statusAll Φ statusID:

    public int statusAll(boolean load);
    public int statusID(int id, boolean load);

    ┬ ταΓΦ±Φ∞ε±≥Φ ε≥ τφα≈σφΦ  ∩α≡α∞σ≥≡α load ²≥Φ ∞σ≥εΣ√ ∞επ≤≥ ΦφΦ÷ΦΦ≡εΓα≥ⁿ ταπ≡≤τΩ≤ Φτεß≡αµσφΦΘ. ┼±δΦ ∩α≡α∞σ≥≡ ≡αΓσφ true, ταπ≡≤τΩα Φτεß≡αµσφΦΘ ΦφΦ÷ΦΦ≡≤σ≥± , σ±δΦ false - Γ√∩εδφ σ≥±  ≥εδⁿΩε ∩≡εΓσ≡Ωα ≥σΩ≤∙σπε ±ε±≥ε φΦ  ταπ≡≤τΩΦ.

    ╠σ≥εΣ√ statusAll Φ statusID ΓετΓ≡α∙α■≥ τφα≈σφΦσ, ±ε±≥αΓδσφφεσ Φτ ε≥Σσδⁿφ√⌡ ßΦ≥εΓ ±ε±≥ε φΦ  ∩≡Φ ∩ε∞ε∙Φ δεπΦ≈σ±ΩεΘ ε∩σ≡α÷ΦΦ ╚╦╚. ═Φµσ ∞√ ∩σ≡σ≈Φ±δΦδΦ ²≥Φ ßΦ≥√ ±ε±≥ε φΦ  Φ ∩≡ΦΓσδΦ Φ⌡ Ω≡α≥Ωεσ ε∩Φ±αφΦσ.

    ┴Φ≥√ ±ε±≥ε φΦ  ╬∩Φ±αφΦσ
    MediaTracker.LOADING ╬ΣΦφ ΦδΦ φσ±ΩεδⁿΩε ε≥±δσµΦΓασ∞√⌡ ⌠αΘδεΓ ∩≡εΣεδµα■≥ ταπ≡≤µα≥ⁿ± 
    MediaTracker.ABORTED ╟απ≡≤τΩα εΣφεπε ΦδΦ φσ±ΩεδⁿΩΦ⌡ ⌠αΘδεΓ ß√δα ∩≡σ≡Γαφα
    MediatTracker.ERRORED ╧≡Φ ταπ≡≤τΩσ εΣφεπε ΦδΦ φσ±ΩεδⁿΩΦ⌡ ⌠αΘδεΓ ∩≡εΦτε°δα ε°ΦßΩα
    MediaTracker.COMPLETE ╟απ≡≤τΩα Γ±σ⌡ ε≥±δσµΦΓασ∞√⌡ ⌠αΘδεΓ ∩≡εΦτε°δα ∩εδφε±≥ⁿ■ Φ ≤±∩σ°φε

    ┼∙σ ≈σ≥√≡σ ∞σ≥εΣα, ε∩≡σΣσδσφφ√⌡ Γ Ωδα±±σ MediaTracker, ±Γ ταφ√ ± εß≡αßε≥ΩεΘ ε°ΦßεΩ:

    public boolean isErrorAny();
    public boolean isErrorID(int id);
    public Object[] getErrorsAny();
    public Object[] getErrorsID(int id); 

    ╠σ≥εΣ√ isErrorAny Φ isErrorID ∩ετΓεδ ■≥ ∩≡εΓσ≡Φ≥ⁿ, ΓετφΦΩδα δΦ ε°ΦßΩα ∩≡Φ ταπ≡≤τΩσ, ±εε≥Γσ≥±≥Γσφφε, δ■ßεπε Φτ ε≥±δσµΦΓασ∞√⌡ Φτεß≡αµσφΦΘ ΦδΦ Φτεß≡αµσφΦΘ Φτ ταΣαφφεΘ π≡≤∩∩√. ┼±δΦ ε°ΦßΩα ∩≡εΦτε°δα, ΓετΓ≡α∙ασ≥±  τφα≈σφΦσ true, σ±δΦ φσ≥ - τφα≈σφΦσ false.

    ╠σ≥εΣ√ getErrorsAny Φ getErrorsID ΓετΓ≡α∙α■≥ ∞α±±ΦΓ εß·σΩ≥εΓ, ∩≡Φ εµΦΣαφΦΦ ταπ≡≤τΩΦ Ωε≥ε≡√⌡ ∩≡εΦτε°δα ε°ΦßΩα. ╧σ≡Γ√Θ Φτ ²≥Φ⌡ ∞σ≥εΣεΓ ΓετΓ≡α∙ασ≥ ∞α±±ΦΓ Σδ  Γ±σ⌡ ε≥±δσµΦΓασ∞√⌡ εß·σΩ≥εΓ, Γ≥ε≡εΘ - ≥εδⁿΩε εß·σΩ≥εΓ Φτ ταΣαφφεΘ π≡≤∩∩√.

    ╧≡Φ∞σφσφΦσ Φφ≥σ≡⌠σΘ±α ImageObserver

    ┬≥ε≡εΘ ±∩ε±εß εµΦΣαφΦ  ταΓσ≡°σφΦ  ∩≡ε÷σ±±α ταπ≡≤τΩΦ Φτεß≡αµσφΦΘ ±Γ ταφ ± Φφ≥σ≡⌠σΘ±ε∞ ImageObserver:

    ┴Φ≥√ ⌠δαπεΓ Σδ  ∩α≡α∞σ≥≡α infoflags ∞σ≥εΣα imageUpdate

    public final static int ABORT; 
    public final static int ALLBITS; 
    public final static int ERROR; 
    public final static int FRAMEBITS; 
    public final static int HEIGHT; 
    public final static int PROPERTIES;
    public final static int SOMEBITS; 
    public final static int WIDTH; 

    ╠σ≥εΣ imageUpdate

    public abstract boolean
      imageUpdate(Image img, int infoflags,
      int x, int y, int width, int height);

    ╩αΩ ΓΦΣΦ≥σ, Γ Φφ≥σ≡⌠σΘ±σ ImageObserver ε∩≡σΣσδσφ σΣΦφ±≥Γσφφ√Θ ∞σ≥εΣ imageUpdate Φ φαßε≡ ßΦ≥εΓ√⌡ ⌠δαπεΓ Σδ  ²≥επε ∞σ≥εΣα.

    ╩δα±± Component, ε≥ Ωε≥ε≡επε ∩≡εΦ±⌡εΣΦ≥ Ωδα±± Applet, ≡σαδΦτ≤σ≥ Φφ≥σ≡⌠σΘ± ImageObserver:

    public abstract class java.awt.Component
      extends java.lang.Object
      implements java.awt.image.ImageObserver
    {
      . . .
    }

    ▌≥ε≥ Φφ≥σ≡⌠σΘ± Φ±∩εδⁿτ≤σ≥±  Σδ  ε≥±δσµΦΓαφΦ  ∩≡ε÷σ±±α ταπ≡≤τΩΦ Φ ∩σ≡σ≡Φ±εΓΩΦ Φτεß≡αµσφΦΘ Φ Σ≡≤πΦ⌡ Ωε∞∩εφσφ≥, ≡α±∩εδεµσφφ√⌡ Γφ≤≥≡Φ Ωε∞∩εφσφ≥α. ┬ ≈α±≥φε±≥Φ, εφ Φ±∩εδⁿτ≤σ≥±  Σδ  ε≥±δσµΦΓαφΦ  ταπ≡≤τΩΦ Φ ≡Φ±εΓαφΦ  ≡α±≥≡εΓ√⌡ Φτεß≡αµσφΦΘ Γ εΩφσ α∩δσ≥α, ≈σ∞ ∞√ Φ Γε±∩εδⁿτ≤σ∞± .

    ┬ ∩≡ε÷σ±±σ ταπ≡≤τΩΦ Γ√τ√Γασ≥±  ∞σ≥εΣ imageUpdate, ∩ε²≥ε∞≤ ≈≥εß√ ε≥±δσµΦΓα≥ⁿ ταπ≡≤τΩ≤ Φτεß≡αµσφΦΘ, φα° α∩δσ≥ Σεδµσφ ∩σ≡σε∩≡σΣσδΦ≥ⁿ ²≥ε≥ ∞σ≥εΣ.

    ╧≡ε÷σΣ≤≡α εµΦΣαφΦ  ταπ≡≤τΩΦ Φτεß≡αµσφΦΘ Σε±≥α≥ε≈φε ∩≡ε±≥α.

    ╧≡σµΣσ Γ±σπε, α∩δσ≥ Σεδµσφ ∩σ≡σΣα≥ⁿ Γ ∩ε±δσΣφσ∞ ∩α≡α∞σ≥≡σ ∞σ≥εΣ≤ drawImage ±±√δΩ≤ φα Φφ≥σ≡⌠σΘ± ImageObserver, Ωε≥ε≡√Θ ß≤Σσ≥ ∩≡Φ∞σφ ≥ⁿ±  Σδ  ε≥±δσµΦΓαφΦ  ∩≡ε÷σ±±α ταπ≡≤τΩΦ:

    g.drawImage(Img, x, y,
      width, height, this);

    ╟Σσ±ⁿ Γ Ωα≈σ±≥Γσ ±±√δΩΦ φα Φφ≥σ≡⌠σΘ± ImageObserver ∞√ ∩σ≡σΣαδΦ τφα≈σφΦσ this. ╧≡Φ ²≥ε∞ ß≤Σσ≥ ∩≡Φ∞σφσφ Φφ≥σ≡⌠σΘ± φα°σπε α∩δσ≥α. ╤εε≥Γσ≥±≥Γσφφε, φα∞ φ≤µφε ε∩≡σΣσδΦ≥ⁿ Γ Ωδα±±σ α∩δσ≥α ∞σ≥εΣ imageUpdate, Ωε≥ε≡√Θ ß≤Σσ≥ Γ√τ√Γα≥ⁿ±  Γ ∩≡ε÷σ±±σ ταπ≡≤τΩΦ Φτεß≡αµσφΦΘ.

    ═Φµσ ∞√ ∩≡ΦΓσδΦ Γετ∞εµφ√Θ Γα≡Φαφ≥ ≡σαδΦτα÷ΦΦ ²≥επε ∞σ≥εΣα:

    public boolean imageUpdate(
      Image img, int flags,
      int x, int y, int w, int h)
    {
      // ╧≡εΓσ≡ σ∞, Γ±σ δΦ 
      // ßΦ≥√ Φτεß≡αµσφΦ  ταπ≡≤µσφ√
      fAllLoaded = ((flags & ALLBITS) != 0);
    
      // ┼±δΦ Γ±σ, ∩σ≡σ≡Φ±εΓ√Γασ∞ εΩφε
      if(fAllLoaded)
        repaint();
    
      // ┼±δΦ Γ±σ ßΦ≥√ ταπ≡≤µσφ√,
      // ΣαδⁿφσΘ°Φσ Γ√τεΓ√
      // ∞σ≥εΣα imageUpdate φσ φ≤µφ√
      return !fAllLoaded;
    }

    ╫σ≡στ ∩σ≡Γ√Θ ∩α≡α∞σ≥≡ img ∞σ≥εΣ≤ imageUpdate ∩σ≡σΣασ≥±  ±±√δΩα φα Φτεß≡αµσφΦσ, ταπ≡≤τΩα Ωε≥ε≡επε ε≥±δσµΦΓασ≥± .

    ╧α≡α∞σ≥≡ flags ε≥≡αµασ≥ ±ε±≥ε φΦσ ∩≡ε÷σ±±α ταπ≡≤τΩΦ.

    ╫σ≡στ ε±≥αδⁿφ√σ ∩α≡α∞σ≥≡√ x, y, w Φ h ∩σ≡σΣα■≥± , ±εε≥Γσ≥±≥Γσφφε, Ωεε≡ΣΦφα≥√ Φ ≡ατ∞σ≡√ Φτεß≡αµσφΦ .

    ╬±φεΓφεσ, ≈≥ε Σεδµσφ Σσδα≥ⁿ ∞σ≥εΣ imageUpdate Σδ  ε≥±δσµΦΓαφΦ  ∩≡ε÷σ±±α ταπ≡≤τΩΦ - ²≥ε ∩≡εΓσ≡ ≥ⁿ ⌠δαπΦ flags, ΣεµΦΣα ±ⁿ ≤±≥αφεΓΩΦ φ≤µφ√⌡ ⌠δαπεΓ.

    ╘δαπΦ ε∩≡σΣσδσφ√ ±δσΣ≤■∙Φ∞ εß≡ατε∞:

    public final static int WIDTH;
    public final static int HEIGHT = 2;
    public final static int PROPERTIES = 4;
    public final static int SOMEBITS = 8;
    public final static int FRAMEBITS = 16;
    public final static int ALLBITS = 32;
    public final static int ERROR = 64;
    public final static int ABORT = 128;

    ═Φµσ ∞√ ∩≡ΦΓσδΦ Ω≡α≥Ωεσ ε∩Φ±αφΦσ ∩σ≡σ≈Φ±δσφφ√⌡ ⌠δαπεΓ.

    ╘δαπ ╬∩Φ±αφΦσ
    WIDTH ╚τεß≡αµσφΦσ ταπ≡≤µσφε φα±≥εδⁿΩε, ≈≥ε ±≥αδα Σε±≥≤∩φα σπε °Φ≡Φφα. ╟φα≈σφΦσ °Φ≡Φφ√ Φτεß≡αµσφΦ  ∞εµφε ∩εδ≤≈Φ≥ⁿ Φτ ∩α≡α∞σ≥≡α w ∞σ≥εΣα imageUpdate
    HEIGHT └φαδεπΦ≈φε ∩≡σΣ√Σ≤∙σ∞≤, φε Σδ  Γ√±ε≥√ Φτεß≡αµσφΦ . ┬√±ε≥≤ Φτεß≡αµσφΦ  ∞εµφε ∩εδ≤≈Φ≥ⁿ Φτ ∩α≡α∞σ≥≡α h ∞σ≥εΣα imageUpdateimageUpdate
    PROPERTIES ╤≥αδΦ Σε±≥≤∩φ√ ±ΓεΘ±≥Γα Φτεß≡αµσφΦ , Ωε≥ε≡√σ ∞εµφε ∩εδ≤≈Φ≥ⁿ ∞σ≥εΣε∞ getProperty Ωδα±±α Image. ┬ φα°σΘ ΩφΦπσ ∞√ ε∩≤±≥ΦδΦ ε∩Φ±αφΦσ ²≥επε ∞σ≥εΣα
    SOMEBITS ╤≥αδΦ Σε±≥≤∩φ√ ßΦ≥√ Φτεß≡αµσφΦ  Σδ  ≡Φ±εΓαφΦ  Γ ∞α±°≥αßσ. ╫σ≡στ ∩α≡α∞σ≥≡√ x, y, h Φ w ∩σ≡σΣα■≥±  Ωεε≡ΣΦφα≥√ Φ ≡ατ∞σ≡√ ∩≡ ∞ε≤πεδⁿφεΘ εßδα±≥Φ, Ωε≥ε≡α  επ≡αφΦ≈ΦΓασ≥ ταπ≡≤µσφφ≤■ ≈α±≥ⁿ Φτεß≡αµσφΦ 
    FRAMEBITS ╟απ≡≤µσφ ε≈σ≡σΣφεΘ ⌠≡σΘ∞ Φτεß≡αµσφΦ , ±ε±≥ε ∙σπε Φτ φσ±ΩεδⁿΩΦ⌡ ⌠≡σΘ∞εΓ. ╧α≡α∞σ≥≡√ x, y, h Φ w ±δσΣ≤σ≥ Φπφε≡Φ≡εΓα≥ⁿ
    ALLBITS ╚τεß≡αµσφΦσ ταπ≡≤µσφε ∩εδφε±≥ⁿ■. ╧α≡α∞σ≥≡√ x, y, h Φ w ±δσΣ≤σ≥ Φπφε≡Φ≡εΓα≥ⁿ
    ERROR ╧≡Φ ταπ≡≤τΩσ ∩≡εΦτε°δα ε°ΦßΩα
    ABORT ╟απ≡≤τΩα Φτεß≡αµσφΦ  ß√δα ∩≡σ≡Γαφα ΦδΦ ε≥∞σφσφα

    └φαδΦτΦ≡≤  ±ε±≥ε φΦσ ⌠δαπεΓ, ∞σ≥εΣ imageUpdate ∞εµσ≥ ±δσΣΦ≥ⁿ τα ⌡εΣε∞ ταπ≡≤τΩΦ Φτεß≡αµσφΦΘ, ε≥εß≡αµα , φα∩≡Φ∞σ≡, ∩≡ε÷σφ≥ ταΓσ≡°σφΦ  ∩≡ε÷σ±±α ταπ≡≤τΩΦ ΦδΦ Γ√∩εδφ   ΩαΩΦσ-δΦßε Σ≡≤πΦσ ΣσΘ±≥ΓΦ .

    ┼±δΦ Γα∞ φ≤µφε ≥εδⁿΩε ΣεµΣα≥ⁿ±  ταΓσ≡°σφΦ  ∩≡ε÷σ±±α ταπ≡≤τΩΦ, Σε±≥α≥ε≈φε Φ±∩εδⁿτεΓα≥ⁿ ⌠δαπ ALLBITS. ─δ  ∩≡εΓσ≡ΩΦ ε°ΦßεΩ Γε±∩εδⁿτ≤Θ≥σ±ⁿ ⌠δαπα∞Φ ERROR Φ ABORT.



Java | ╧≡εΣ≤Ω≥√ Φ ≡σ°σφΦ  | ╥σ⌡φεδεπΦΦ | ╤σ≡ΓΦ± Φ εß≤≈σφΦσ
╬ Ωε∞∩αφΦΦ | ╧α≡≥φσ≡√ | ═εΓε±≥Φ | ╧εΦ±Ω
Sun Microsystems Inc. Corporate Information Our partners News and Events Search on site Java Computing Products and Solutions Technologies and Researches Education and Service Content